/*
 * Level.h
 *
 *  Created on: 4 apr 2010
 *      Author: Andreas
 */

#ifndef LEVEL_H_
#define LEVEL_H_

#include <SDL/SDL.h>
#include <string>
#include <vector>
#include "Block.h"
#include "Guard.h"

class Player;
class Image;

namespace Single {

class Base;

class Level {
public:
	Level(std::string file);
	virtual ~Level();

	void userInput(Uint8 *keys);
	void handleEvents(SDL_Event *event);
	void update(int elapsed);
	void drawScene();

private:
	Image *map;
	Single::Base *base;
	Player *player;
	vector<Single::Block *> blocks;
	vector<Single::Guard *> guards;
	int blocksCollected, blocksHolding;
	int goalX, goalY;

	bool showCollCircles;
};

}

#endif /* LEVEL_H_ */
